Various computer systems allow a user to employ a computer at a remote location. For example, some mainframe computer systems support remote terminals connected to the mainframe computer by dedicated lines or by other communications links. As the computing power available in small computers referred to as personal computers or “PCs” has increased, many applications previously performed on mainframe systems has been transferred to PCs. In many cases, PCs are connected to one another, to larger computers or both through networks which allow the transfer of information among the various computers. Thus, a user at any location can run programs on his or her own computer using files taken from other computers on the network, and also can run programs on other computers.
While this approach offers numerous advantages, it also suffers from certain disadvantages. Maintaining all of the individual computers at dispersed locations takes considerable time and effort. The dispersed computers and their components are vulnerable to theft and damage. Moreover, controlling software updates on all of the various computers and assuring that each individual computer has the appropriate software presents a significant challenge. This challenge is especially significant in environments such as software development laboratories where the software to be used is changing continually. Moreover, the requirement that a computer be present in the immediate vicinity of the user means that the user must put up with the noise and heat generated by the computer and means that the computer will occupy some of the space which would otherwise be available at the user's desk. This latter drawback is especially annoying to users who must employ several computers at once as, for example, some securities and commodities traders.
Various proposals have been advanced to alleviate these problems. For example, as disclosed in U.S. Pat. No. 5,721,842, input devices such as a keyboard and mouse and output devices such as a display monitor and speaker may be provided at numerous user locations. These devices are connected to signal conditioning circuits or “pods”, which in turn connect to a crosspoint switch. Numerous computers are also provided. The computers are connected through other “pods” to other terminals of the crosspoint switch. The crosspoint switch is arranged to connect any of the pods associated with user locations to any of the pods associated with the computers, so that each user can be connected to any computer. These connections include both digital connections for passage of input signals such as keyboard and mouse data to the computer and analog connections for video signals sent by the computer. Thus, the user can operate the remote computer in much the same manner as a user having a keyboard, mouse and display screen directly linked to the computer. In order to allow the user to select different computers, the system provides a processor within each pod at each user location. This processor recognizes special command keystroke sequences entered by the user, formats these commands and transmits the commands over separate command data lines to the crosspoint switch. The pod contains a rudimentary program which actuates the monitor to display a menu of the available commands when the user enters the beginning of the command sequence on the keyboard.
This approach suffers from several serious drawbacks. The pods can at most display rudimentary lists of commands. This offers little or no guidance to the user in selecting appropriate computers to connect with for specific purposes. Moreover, it is difficult to control access by specific users to specific computers. Further, the need for separate command channels extending through the user locations, as well as the need for even rudimentary programmability and display generation capabilities at the user locations significantly increase the cost and complexity of the system. Thus, despite significant efforts heretofore in the development of multi-user, multi-computer systems, there still remains a considerable need for improvement in such systems.